package com.daqsoft.service.project;

import com.daqsoft.dao.project.ProjectEditionDao;
import com.daqsoft.data.project.Project;
import com.daqsoft.data.project.ProjectEdition;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 项目版本关系服务层
 * @author 周麟东 on 14:49
 */
@Service
public class ProjectEditionService {

    @Autowired
    private ProjectEditionDao dao;

    /**
     * 通过当前项目找到最初的版本 如果当前项目本身就是最初版本 则返回空
     * @param current 当前项目对象
     * @return 最初版本的项目
     */
    public Project getInitial(Project current){
        //如果一个项目有多个版本 当前是这个的一定只有一个 如果没有说明当前版本就是原始版本
        ProjectEdition projectEdition = dao.getFirstByCurrent(current);
        if (projectEdition == null){
            return null;
        }
        return projectEdition.getInitial();
    }

    /**
     * 保存关系
     * @param edition 关系对象
     * @return 关系对象
     */
    public ProjectEdition save(ProjectEdition edition) {
        return dao.save(edition);
    }

    /**
     * 通过当前项目查找关系
     * @param project 项目对象
     * @return 关系
     */
    public ProjectEdition getByCurrent(Project project){
        return dao.getFirstByCurrent(project);
    }

    /**
     * 通过上一个项目查找关系
     * @param project 项目对象
     * @return 关系对象
     */
    public ProjectEdition getByPrevious(Project project){
        return dao.getFirstByPrevious(project);
    }

    /**
     * 删除关系
     * @param edition 关系对象
     */
    public void remove(ProjectEdition edition){
        dao.delete(edition);
    }
}
